
using Nop.Core.Domain.Media;
using System.Collections.Generic;

namespace Nop.Services.Media
{
    /// <summary>
    /// File service
    /// </summary>
    public partial interface IFilesService
    {
        /// <summary>
        /// Gets all Files
        /// </summary>
        /// <returns>File</returns>
        IList<Files> GetAllFiles();

        /// <summary>
        /// Gets a File 
        /// </summary>
        /// <param name="fileId">File identifier</param>
        /// <returns>File</returns>
        Files GetFileById(int fileId);

        /// <summary>
        /// Inserts a File
        /// </summary>
        /// <param name="file">File</param>
        void InsertFile(Files file);

        /// <summary>
        /// Updates the File
        /// </summary>
        /// <param name="file">File</param>
        void UpdateFile(Files file);

        /// <summary>
        /// Deletes a File
        /// </summary>
        /// <param name="File">File</param>
        void DeleteFile(Files file);

        Files InsertFile(byte[] filesBinary, string mimeType, string seoFilename, string altAttribute = null, string titleAttribute = null, bool isNew = true);
        string GetFileUrl(int fileId);
        string GetFileUrl(Files file);
        void DeleteFileByIds(int[] ids);
    }
}

